import {
	http
} from '@/utils/request/index.js'
// 客户管理相关接口

/**
 * 获取客户列表（分页）
 * @param {Object} params-查询参数
 * @param {number} params.pageNo-页码
 * @param {number} params.pageSize-每页大小
 * @param {number} params.sceneType-场景类型
 * @param {string} params.name-客户名称（可选）
 * @param {string} params.mobile-手机号（可选）
 */
export function getCustomerList(params) {
	return http.get('/crm/customer/page', params)
}

/**
 * 添加客户
 * @param {Object} data-客户信息
 */
export function addCustomer(data) {
	return http.post('/crm/customer/create', data)
}

/**
 * 更新客户信息
 * @param {Object} data-客户信息
 */
/**
 * 删除客户
 * @param {number} id-客户ID
 */

/**
 * 获取客户详情
 * @param {number} id-客户ID
 */
export function getCustomerDetail(id) {
	return http.get('/crm/customer/get', {
		id
	})
}

/**
 * 获取客户来源字典
 */
export function getCustomerSourceDict() {
	return http.get('/system/dict-data/type/CRM_CUSTOMER_SOURCE')
}

/**
 * 获取客户级别字典
 */
export function getCustomerLevelDict() {
	return http.get('/system/dict-data/type/CRM_CUSTOMER_LEVEL')
}

/**
 * 获取客户行业字典
 */
export function getCustomerIndustryDict() {
	return http.get('/system/dict-data/type/CRM_CUSTOMER_INDUSTRY')
}


// export interface CustomerVO {
// 	id // 编号
// 	name: string // 客户名称
// 	followUpStatus // 跟进状态
// 	contactLastTime: Date // 最后跟进时间
// 	contactLastContent: string // 最后跟进内容
// 	contactNextTime: Date // 下次联系时间
// 	ownerUserId // 负责人的用户编号
// 	ownerUserName?: string // 负责人的用户名称
// 	ownerUserDept?: string // 负责人的部门名称
// 	lockStatus?
// 	dealStatus?
// 	mobile: string // 手机号
// 	telephone: string // 电话
// 	qq: string // QQ
// 	wechat: string // wechat
// 	email: string // email
// 	areaId // 所在地
// 	areaName?: string // 所在地名称
// 	detailAddress: string // 详细地址
// 	industryId // 所属行业
// 	level // 客户等级
// 	source // 客户来源
// 	remark: string // 备注
// 	creator: string // 创建人
// 	creatorName?: string // 创建人名称
// 	createTime: Date // 创建时间
// 	updateTime: Date // 更新时间
// }

// 查询客户列表
export function getCustomerPage(params) {
	return http.get('/crm/customer/page',
		params
	)
}

// 进入公海客户提醒的客户列表
export function getPutPoolRemindCustomerPage(params) {
	return http.get('/crm/customer/put-pool-remind-page', params)
}

// 获得待进入公海客户数量
export function getPutPoolRemindCustomerCount() {
	return http.get('/crm/customer/put-pool-remind-count')
}

// 获得今日需联系客户数量
export function getTodayContactCustomerCount() {
	return http.get('/crm/customer/today-contact-count')
}

// 获得分配给我、待跟进的线索数量的客户数量
export function getFollowCustomerCount() {
	return http.get('/crm/customer/follow-count')
}

// 查询客户详情
export function getCustomer(id) {
	return http.get({
		url: '/crm/customer/get?id = ' + id
	})
}

// 新增客户
export function createCustomer(data) {
	return http.post({
		url: '/crm/customer/create',
		data
	})
}

// 修改客户
export function updateCustomer(data) {
	return http.put({
		url: '/crm/customer/update',
		data
	})
}

// 更新客户的成交状态
export function updateCustomerDealStatus(id, dealStatus) {
	return http.put({
		url: '/crm/customer/update-deal-status',
		params: {
			id,
			dealStatus
		}
	})
}

// 删除客户
export function deleteCustomer(id) {
	return http.delete(
		'/crm/customer/delete?id=' + id
	)
}

// 导出客户 Excel
export function exportCustomer(params) {
	return http.download('/crm/customer/export-excel',
		params
	)
}

// 下载客户导入模板
export function importCustomerTemplate() {
	return http.download({
		url: '/crm/customer/get-import-template'
	})
}

// 导入客户
export function handleImport(formData) {
	return http.upload('/crm/customer/import', formData)
}

// 客户列表
export function getCustomerSimpleList() {
	return http.get({
		url: '/crm/customer/simple-list'
	})
}

// ======================= 业务操作 =======================

// 客户转移
export function transferCustomer(data) {
	return http.put({
		url: '/crm/customer/transfer',
		data
	})
}

// 锁定/解锁客户
export function lockCustomer(id, lockStatus) {
	return http.put({
		url: '/crm/customer/lock',
		data: {
			id,
			lockStatus
		}
	})
}

// 领取公海客户
export function receiveCustomer(ids) {
	return http.put({
		url: '/crm/customer/receive',
		params: {
			ids: ids.join(',')
		}
	})
}

// 分配公海给对应负责人
export function distributeCustomer(ids, ownerUserId) {
	return http.put({
		url: '/crm/customer/distribute',
		data: {
			ids: ids,
			ownerUserId
		}
	})
}

// 客户放入公海
export function putCustomerPool(id) {
	return http.put('/crm/customer/put-pool', {
		id: id
	})
}